import { createSSRApp } from "vue";
import App from "./App.vue";
import uviewPlus from 'uview-plus';
export function createApp() {
  const app = createSSRApp(App);
    // 1. 拦截 navigateTo（保留当前页跳转）
    // uni.addInterceptor('navigateTo', {
    //     // 跳转前拦截（类似 beforeEach）
    //     invoke(options: UniApp.NavigateToOptions & { needAuth?: boolean }, resolve, reject) {
    //         console.log('navigateTo 跳转前拦截:', options.url);
    //
    //         // 示例1：需要登录的页面拦截（url 包含 /pages/ 需要登录的页面）
    //         const needAuthPages = ['/pages/order/', '/pages/collect/', '/pages/profile/'];
    //         const isNeedAuth = needAuthPages.some(page => options.url.includes(page));
    //
    //         // 模拟登录状态（实际项目中从本地存储获取）
    //         const isLogin = uni.getStorageSync('isLogin') === true;
    //
    //         if (isNeedAuth && !isLogin) {
    //             // 未登录，跳转到登录页
    //             uni.showToast({ title: '请先登录', icon: 'none' });
    //             uni.navigateTo({ url: '/pages/login/login' });
    //             reject('未登录，阻止跳转'); // 阻止原跳转
    //         } else {
    //             resolve(options); // 允许跳转
    //         }
    //     },
    //     // 跳转成功后回调（类似 afterEach）
    //     success(res) {
    //         console.log('navigateTo 跳转成功:', res);
    //     },
    //     // 跳转失败回调
    //     fail(err) {
    //         console.error('navigateTo 跳转失败:', err);
    //     }
    // });

    // 2. 拦截 switchTab（Tab 页切换）
    // uni.addInterceptor('switchTab', {
    //     invoke(options: UniApp.SwitchTabOptions, resolve) {
    //         console.log('switchTab 切换拦截:', options.url);
    //         // 可添加 Tab 页切换的拦截逻辑（如登录校验、埋点等）
    //         resolve(options);
    //     }
    // });

    // 3. 拦截 reLaunch（关闭所有页面跳转）
    uni.addInterceptor('reLaunch', {
        invoke(options: UniApp.ReLaunchOptions, resolve) {
            console.log('reLaunch 跳转拦截:', options.url);
            resolve(options);
        }
    });
    app.use(uviewPlus,()=>{
        return {
            options:{
                config:{
                    unit:'rpx'
                }
            }
        }
    });
  return {
    app
  };
}
